﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GS1.Entidad;
using System.Diagnostics;
using log4net;
using System.Configuration;
using GS1.Utilitario;
using GS1.Negocio;
using GS1.Datos;
using ThingMagic;


namespace MantenimientoEtiquetasRFID.Formularios
{
    public partial class frmNuevo : Form
    {
        #region --- Variables y Propiedades ---
        private static readonly ILog log = LogManager.GetLogger(typeof(frmNuevo));
        private const string TITULO = "CONFIRMACIÓN";

        private RFIDState estadoReader;
        private enum RFIDState
        {
            CONECTADO,
            DESCONECTADO
        }

        Uri objUri;
        Reader reader;

        private Etiqueta etiqueta = new Etiqueta();
        #endregion

        #region --- Constructor ---
        public frmNuevo()
        {
            InitializeComponent();
        }
        #endregion

        #region --- Eventos del Reader ---
        private Reader Conectar()
        {
            Reader rReaderUSB = Reader.Create(ConfigurationManager.AppSettings[Constantes.URILECTOR].desEncriptarDES(ConfigurationManager.AppSettings[Constantes.LLAVE_3DS]).ToString());
            
            rReaderUSB.Connect();
            
            if (this.estadoReader == RFIDState.DESCONECTADO)
            {
                CambiarEstadoReader();
            }
            
            if (Reader.Region.UNSPEC == (Reader.Region)rReaderUSB.ParamGet("/reader/region/id"))
            {
                Reader.Region[] supportedRegions = (Reader.Region[])rReaderUSB.ParamGet("/reader/region/supportedRegions");
                if (supportedRegions.Length < 1)
                {
                    throw new FAULT_INVALID_REGION_Exception();
                }
                else
                {
                    rReaderUSB.ParamSet("/reader/region/id", supportedRegions[0]);

                }
            }
            rReaderUSB.ParamSet("/reader/radio/readPower", 1000);
            rReaderUSB.ParamSet("/reader/radio/writePower", 1500);

            return rReaderUSB;
        }

        private void grabaPswd()
        {
            try
            {
                Reader rReaderUSB =  Conectar();

                ushort[] uPass = Obtieneushort(ConfigurationManager.AppSettings[Constantes.ACCE_PASS].desEncriptarDES(ConfigurationManager.AppSettings[Constantes.LLAVE_3DS]).ToString());

                    Gen2.WriteData pass = new Gen2.WriteData(Gen2.Bank.RESERVED, 2, uPass);

                    rReaderUSB.ExecuteTagOp(pass, null);
                    rReaderUSB.Destroy();
                
            }
            catch (ReaderException ex)
            {
                Libreria.MensajeError(ex);
            }

        }

        private void grabaEpc(Etiqueta etiquetaGrabar)
        {
            try
            {
                Reader rReaderUSB = Conectar();

                Gen2.TagData epc = new Gen2.TagData(Obtienebytes(etiquetaGrabar));

                Gen2.WriteTag tagop = new Gen2.WriteTag(epc);

                rReaderUSB.ExecuteTagOp(tagop, null);
                rReaderUSB.Destroy();

            }
            catch (ReaderException ex)
            {
                Libreria.MensajeError(ex);
            }
        }

        private void bloquearAcceso()
        {
            try
            {

                Reader rReaderUSB = Conectar();

                    TagReadData[] tagReads;
                    Gen2.Session newSession = Gen2.Session.S0;

                    rReaderUSB.ParamSet("/reader/gen2/session", newSession);
                    uint uPswd = uint.Parse(ConfigurationManager.AppSettings[Constantes.ACCE_PASS].desEncriptarDES(ConfigurationManager.AppSettings[Constantes.LLAVE_3DS]).ToString(), System.Globalization.NumberStyles.HexNumber);
                    Gen2.Password pswd = new Gen2.Password(uPswd);
                    rReaderUSB.ParamSet("/reader/gen2/accessPassword", pswd);

                    try
                    {
                        // Find a tag to work on
                        tagReads = rReaderUSB.Read(Convert.ToInt32(ConfigurationManager.AppSettings[Constantes.TIMEOUTREADER]));


                        TagData tagData = tagReads[0].Tag;

                        // Lock the tag
                        rReaderUSB.ExecuteTagOp(new Gen2.Lock(uPswd, new Gen2.LockAction(Gen2.LockAction.EPC_LOCK)), tagData);
                        rReaderUSB.ExecuteTagOp(new Gen2.Lock(uPswd, new Gen2.LockAction(Gen2.LockAction.ACCESS_LOCK)), tagData);

                        rReaderUSB.Destroy();

                    }

                    catch (ReaderException ex)
                    {
                        Libreria.MensajeError(ex);
                    }
                
            }
            catch (ReaderException ex)
            {
                Libreria.MensajeError(ex);
            }
        }
        #endregion

        #region --- Eventos Formulario ---
        private void frmNuevo_Load(object sender, EventArgs e)
        {
            cargarFormulario();
        }

        private void frmNuevo_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (this.estadoReader == RFIDState.CONECTADO) { CambiarEstadoReader(); }
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            grabar();
        }
        private void tbtnSalir_Click(object sender, EventArgs e)
        {
            salir();
        }

        #endregion

        #region --- Metodos Propios ---

        private void cargarFormulario()
        {
            try
            {
                this.estadoReader = RFIDState.DESCONECTADO;
                //Obteniendo datos de terminal/usuario/bd Actual
                this.lblFechaActual.Text = Convert.ToString(DateTime.Now.Date);
                this.lblTerminal.Text = ParametrosAplicacion.USUARIO_ACTUAL.codDisp;
                this.lblPerfil.Text = ParametrosAplicacion.USUARIO_ACTUAL.codDisp + "-" + ParametrosAplicacion.USUARIO_ACTUAL.codPerfil + "-" + ParametrosAplicacion.USUARIO_ACTUAL.usuarioUsua;
                //ConfigurationManager.AppSettings[Constantes.BD_CONEXION].desEncriptarDES(ConfigurationManager.AppSettings[Constantes.LLAVE_3DS]).ToString() + "-" + ConfigurationManager.AppSettings[Constantes.PERFIL_USUARIO].desEncriptarDES(ConfigurationManager.AppSettings[Constantes.LLAVE_3DS]).ToString() + "-" + ConfigurationManager.AppSettings[Constantes.CODIGO_USUARIO].desEncriptarDES(ConfigurationManager.AppSettings[Constantes.LLAVE_3DS]).ToString();
                this.lblOficina.Text = ConfigurationManager.AppSettings[Constantes.NOMBRE_EMPRESA] + "-" + ConfigurationManager.AppSettings[Constantes.NOMBRE_OFICINA];
                this.txtAcceso.Text = ConfigurationManager.AppSettings[Constantes.ACCE_PASS]; //.desEncriptarDES(ConfigurationManager.AppSettings[Constantes.LLAVE_3DS]).ToString();
                this.txtBloqueo.Text = ConfigurationManager.AppSettings[Constantes.KILL_PASS]; //.desEncriptarDES(ConfigurationManager.AppSettings[Constantes.LLAVE_3DS]).ToString();
                this.cbIndicador.Items.Add(Constantes.ESTADO_DESCRIPCION_ACTIVO);
                this.cbIndicador.Items.Add(Constantes.ESTADO_DESCRIPCION_INACTIVO);
                this.cbIndicador.Text = Constantes.ESTADO_DESCRIPCION_ACTIVO;
            }
            catch (Exception ex)
            {
                log.Error(ex.Message, ex);
                Libreria.MensajeError(ex, this.Text);
            }
        }

        private void CambiarEstadoReader()
        {
            if (this.estadoReader == RFIDState.DESCONECTADO)
                this.estadoReader = RFIDState.CONECTADO;
            else
                this.estadoReader = RFIDState.DESCONECTADO;
        }

        private Etiqueta ObtenerEtiquetaReader()
        {
            Etiqueta etiqueta = new Etiqueta();

            Reader rReaderUSB = Conectar();

            // Read tags
            TagReadData[] tagReads = rReaderUSB.Read(Convert.ToInt32(ConfigurationManager.AppSettings[Constantes.TIMEOUTREADER]));
            // Print tag reads
            List<String> sEpcCaptura = new List<String>();
            foreach (TagReadData tagReadData in tagReads)
            {
                sEpcCaptura.Add(tagReadData.EpcString.ToString());
            }

            if (sEpcCaptura.Count > 1)
            {
                etiqueta.codEpc = Constantes.MAS_DE_UNA_ETIQUETA;
            }
            else if (sEpcCaptura.Count == 1)
            {
                Boolean bVarios = true;
                String sEpcAnterior = null;
                foreach (String sEPCleido in sEpcCaptura)
                {
                    if (sEpcAnterior != null)
                        if (!sEpcAnterior.Equals(sEPCleido)) bVarios = false;

                    sEpcAnterior = sEPCleido;
                }
                if (bVarios) etiqueta.codEpc = sEpcAnterior;
                else etiqueta.codEpc = Constantes.NINGUNA_ETIQUETA;

            }
            else etiqueta.codEpc = Constantes.NINGUNA_ETIQUETA;

            rReaderUSB.Destroy();

            return etiqueta;
        }

        private String generarEpc()
        {
            String epc = ConfigurationManager.AppSettings[Constantes.IDENTIFICADOR_CAB_ETIQUETA].desEncriptarDES(ConfigurationManager.AppSettings[Constantes.LLAVE_3DS]).ToString();

            string nvehiculo = this.txtVehiculo.Text;

            for (int i = 0; i < nvehiculo.Length; i++)
            {
                switch (nvehiculo.Substring(i, 1))
                {
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_GUION_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_GUION_HEXA;
                            break;
                        }

                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_PUNTO_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_PUNTO_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_A_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_A_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_B_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_B_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_C_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_C_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_D_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_D_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_E_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_E_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_F_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_F_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_G_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_G_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_H_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_H_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_I_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_I_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_J_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_J_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_K_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_K_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_L_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_L_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_M_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_M_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_N_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_N_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_O_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_O_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_P_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_P_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_Q_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_Q_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_R_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_R_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_S_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_S_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_T_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_T_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_U_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_U_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_V_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_V_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_W_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_W_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_X_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_X_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_Y_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_Y_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_Z_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_Z_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_0_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_0_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_1_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_1_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_2_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_2_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_3_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_3_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_4_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_4_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_5_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_5_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_6_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_6_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_7_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_7_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_8_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_8_HEXA;
                            break;
                        }
                    case Constantes.ASCII_MANTENIMIENTO_ETIQUETA_9_DES:
                        {
                            epc = epc + Constantes.ASCII_MANTENIMIENTO_ETIQUETA_9_HEXA;
                            break;
                        }
                }
            }
            return epc;
        }

        private void grabar()
        {
            if (this.txtVehiculo.Text.Equals(string.Empty))
            {
                Libreria.CampoNecesario(this.txtVehiculo, "Debe ingresar número de documento", TITULO);
                return;
            }
            if (this.cbIndicador.SelectedItem.Equals(string.Empty))
            {
                Libreria.CampoNecesario(this.txtVehiculo, "Debe seleccionar estado", TITULO);
                return;
            }
            if (this.estadoReader == RFIDState.DESCONECTADO)
            {
                CambiarEstadoReader();
            }

            if (this.estadoReader == RFIDState.CONECTADO)
            {
                Etiqueta etiquetaNueva = new Etiqueta();
                etiquetaNueva.codEpc = generarEpc();
                etiquetaNueva.codVehiculo = this.txtVehiculo.Text;
                etiquetaNueva.fecCrea = DateTime.Now;
                etiquetaNueva.indActi = Convert.ToInt32(Constantes.ESTADO_CODIGO_ACTIVO);
                etiquetaNueva.nomCompCrea = ParametrosAplicacion.USUARIO_ACTUAL.codDisp;
                etiquetaNueva.codUsuaCrea = ParametrosAplicacion.USUARIO_ACTUAL.usuarioUsua;
                etiquetaNueva.nomCompModi = ParametrosAplicacion.USUARIO_ACTUAL.codDisp;
                etiquetaNueva.codUsuaModi = ParametrosAplicacion.USUARIO_ACTUAL.usuarioUsua;
            
                //Se confirma que el Nº de vehículo exista // Su código no este registrado previamente
                if (validaActivo(etiquetaNueva))
                {
                    MessageBox.Show("Coloque la etiqueta encima del lector", "CONFIRMACIÓN", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //Antes Valida que exista al menos una etiqueta para leer
                    Etiqueta etiquetaPrueba = ObtenerEtiquetaReader();
                    if (etiquetaPrueba.codEpc.Equals(Constantes.NINGUNA_ETIQUETA))
                    {
                        MessageBox.Show("No encontro ninguna etiqueta", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        //Graba etiqueta con reader
                        grabaEpc(etiquetaNueva);
                        //MessageBox.Show("Proceso de grabación no retire la etiqueta", "CONFIRMACIÓN", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        //Graba etiqueta con reader - Access password
                        System.Threading.Thread.Sleep(3000);
                        grabaPswd();
                        //MessageBox.Show("Grabado. No retire etiqueta. Pulse aceptar para bloquear acceso", "CONFIRMACIÓN", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        System.Threading.Thread.Sleep(3000);
                        bloquearAcceso();

                        this.etiqueta = etiquetaNueva;
                        //Obtener etiqueta
                        this.etiqueta = obtenerEtiqueta(this.etiqueta);

                        if (this.etiqueta == null)
                        {
                            //Graba código EPC-Vehículo en Base de Datos
                            if (guardarEpc(etiquetaNueva))
                            {
                                MessageBox.Show("Proceso terminado", TITULO, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else
                            {
                                //Se detuvo la grabación por problemas en BD
                                MessageBox.Show("No se registro etiqueta", TITULO, MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                        else
                        {
                            this.etiqueta = etiquetaNueva;

                            if (modificarEtiqueta())
                            {
                                MessageBox.Show("Proceso terminado", TITULO, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else
                            {
                                //Se detuvo la grabación por problemas en BD
                                MessageBox.Show("No se registro etiqueta", TITULO, MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }


                    }

                }
                else
                {
                    MessageBox.Show("El Nº de vehículo no existe", TITULO, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                
                
            }
        }

        private void salir()
        {
            this.Close();
        }

        #endregion

        #region --- Metodos Soporte ---
        private ushort[] Obtieneushort(string str)
        {
            ushort[] datos = CadenaUshort(str);
            return datos;
        }

        public static ushort[] CadenaUshort(string hex)
        {
            int prelen = 0;

            if (hex.StartsWith("0x") || hex.StartsWith("0X"))
                prelen = 4;

            ushort[] ushorts = new ushort[(hex.Length - prelen) / 4];

            for (int i = 0; i < ushorts.Length; i++)
            {
                string ushortstring = hex.Substring(prelen + (4 * i), 4);
                ushorts[i] = ushort.Parse(ushortstring, System.Globalization.NumberStyles.HexNumber);
            }

            return ushorts;
        }


        private byte[] Obtienebytes(Etiqueta etiquetaGrabar)
        {

            byte[] bytes = ByteFormat.FromHex(etiquetaGrabar.codEpc);
            return bytes;
        }
        #endregion

        #region --- Metodos Llamado a Base de Datos ---
        private bool validaActivo(Etiqueta etiquetaValida)
        {
            int iContar = 0;
            try
            {

                iContar = new EtiquetaBL().contarEtiqueta(etiquetaValida);

            }

            catch (Exception ex)
            {
                Libreria.MensajeError(ex);
            }
           
            return iContar > 0;
        }
        private Etiqueta obtenerEtiqueta(Etiqueta etiquetaleida)
        {

            try
            {
                this.etiqueta = new EtiquetaBL().obtenerEtiqueta(this.etiqueta);
            }

            catch (Exception ex)
            {
                Libreria.MensajeError(ex);
            }

            return this.etiqueta;
        }
        private bool modificarEtiqueta()
        {

            bool respuesta = false;
            try
            {
                //Convert.ToString(ConfigurationManager.AppSettings[Constantes.NOMBRE_COMPUTADORA].desEncriptarDES(ConfigurationManager.AppSettings[Constantes.LLAVE_3DS]).ToString());
                this.etiqueta.nomCompModi = ParametrosAplicacion.USUARIO_ACTUAL.codDisp;
                //ConfigurationManager.AppSettings[Constantes.NOMBRE_COMPUTADORA].desEncriptarDES(ConfigurationManager.AppSettings[Constantes.LLAVE_3DS]).ToString(); //Dinámico
                this.etiqueta.codUsuaModi = ParametrosAplicacion.USUARIO_ACTUAL.usuarioUsua;
                //ConfigurationManager.AppSettings[Constantes.CODIGO_USUARIO].desEncriptarDES(ConfigurationManager.AppSettings[Constantes.LLAVE_3DS]).ToString(); //USUARIO USUA
                //this.etiqueta.fecModi = DateTime.Now; //Quitar de store y aplicación
                this.etiqueta.indActi = 1;

                respuesta = new EtiquetaBL().modificarEtiqueta(this.etiqueta);
            }
            catch (Exception ex)
            {
                Libreria.MensajeError(ex);
            }
            return respuesta;
        }
        private bool guardarEpc(Etiqueta etiqueta)
        {
            bool respuesta = false;
            try
            {

                respuesta = new EtiquetaBL().registrarEtiqueta(etiqueta);
            }
            catch (Exception ex)
            {
                Libreria.MensajeError(ex);
            }
            return respuesta;
        }
        #endregion
    }
}
